Information Technology (IT) administrators may spend a substantial amount of time managing software applications. Managing software applications may include resolving application conflicts, repairing damaged applications, migrating to new versions of applications, installing applications, and patching applications. These tasks may be frustrating and time-consuming.
Application virtualization technologies may simplify many IT administration tasks. For example, application virtualization may allow an administrator to turn on or off a user's access to applications and data, which may reduce the time it takes to provide users with the resources they need. Application virtualization may also allow an administrator to reset broken applications to a known-good state without fear of damaging other applications. Application virtualization may ensure that each virtualized application has its own copy of DLL files that it would normally share with other applications. This eliminates conflicts that occur when two or more applications may require different versions of the same DLL, thereby rescuing administrators from a condition commonly referred to as “DLL Hell.”
Application virtualization may allow different versions of the same application to peacefully coexist. This means that an administrator may keep older versions intact and available while testing new versions. Even after migrating to a new version, an administrator may quickly rollback to the previous version at any time.
Despite the numerous advantages of application virtualization, traditional virtualization technologies may not efficiently handle interactions between applications installed in different virtual locations. For example, a version of JAVA may be installed to one virtual layer, but an application requiring that version of JAVA may be installed in a different virtual layer. What is needed, therefore, is a more effective mechanism for handling virtualization of multiple applications.